home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume22 / wp2x / part01 next >
Encoding:
Text File  |  1991-08-23  |  53.4 KB  |  1,795 lines

  1. Newsgroups: comp.sources.misc
  2. From: Raymond Chen <rjc@math.princeton.edu>
  3. Subject:  v22i055:  wp2x - WordPerfect4.2 to Whatever converter, Part01/03
  4. Message-ID: <csm-v22i055=wp2x.134742@sparky.imd.sterling.com>
  5. X-Md4-Signature: e31953a361d436fa0c014519c34dbe7d
  6. Date: Fri, 23 Aug 1991 18:48:42 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Raymond Chen <rjc@math.princeton.edu>
  10. Posting-number: Volume 22, Issue 55
  11. Archive-name: wp2x/part01
  12. Environment: Amiga, MS-DOS, UNIX, ANSI-C
  13.  
  14. wp2x converts WordPerfect4.2 files to any text-based formatting
  15. language.  Configuration files are included for TeX, LaTeX, SCRIPT/GML,
  16. and troff.  WordPerfect 5.x files must be saved in 4.2 format before
  17. they can be processed by this program.  The supplied configuration
  18. files do not attempt to effect a perfect conversion, because a perfect
  19. conversion is an unreadable conversion.
  20.  
  21. Mundane details:  Requires an ANSI-like compiler.  Has been tested
  22. on an IBM PC, Amiga, and assorted UNIX boxes (with gcc).
  23.  
  24. [Packaging concerns:
  25.  
  26.  The file torture.chk has lines longer than 80 characters.
  27.  The file torture.wp has been uuencoded and transmitted as torture.uue.]
  28.  
  29. Raymond
  30. ----------
  31. #! /bin/sh
  32. # This is a shell archive.  Remove anything before this line, then unpack
  33. # it by saving it into a file and typing "sh file".  To overwrite existing
  34. # files, type "sh file -c".  You can also feed this as standard input via
  35. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  36. # will see the following message at the end:
  37. #        "End of archive 1 (of 3)."
  38. # Contents:  HINTS README accent.cfg ascii.cfg dopen.c gml.cfg
  39. #   latex.cfg sample.cfg script.cfg torture.chk torture.uue troff.cfg
  40. # Wrapped by rjc@tomato on Wed Aug 21 00:08:04 1991
  41. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  42. if test -f 'HINTS' -a "${1}" != "-c" ; then 
  43.   echo shar: Will not clobber existing file \"'HINTS'\"
  44. else
  45. echo shar: Extracting \"'HINTS'\" \(2229 characters\)
  46. sed "s/^X//" >'HINTS' <<'END_OF_FILE'
  47. XHints for compiling on various platforms
  48. X
  49. X-------------------------------------------------------------------------------
  50. XUNIX with gcc
  51. X
  52. Xgcc -v -ansi -funsigned-char -DUNIX -DWP2X_DIR=\"/usr/local/lib/wp2x\"
  53. X    -o wp2x wp2x.c
  54. X
  55. X-------------------------------------------------------------------------------
  56. XAmiga, courtesy of Dale Gold (dgold@basso.actrix.gen.nz)
  57. X
  58. X# Makefile for SAS 5.10 on the Amiga.
  59. X#
  60. X# -b0   No base relative addressing
  61. X# -cu   All char unsigned
  62. X# -L    Automatically link
  63. X# -DNO_CONST compiler does not support `const' qualifier
  64. Xwp2x:   wp2x.c lmkfile
  65. X    lc -b0 -cu -L -DNO_CONST -DAMIGA wp2x.c
  66. X-------------------------------------------------------------------------------
  67. XIBM PC / Turbo C 2.0, suggested by Raymond Chen (raymond@math.berkeley.edu)
  68. X
  69. Xtcc -mt -G -K -O -f- -r -Z -p -DCdecl=cdecl -DMSDOS wp2x.c
  70. X
  71. X                -mt = tiny model
  72. X                -G  = compile for speed
  73. X                -K  = unsigned characters
  74. X                -O  = optimize jumps
  75. X                -f- = no floating point
  76. X                -r  = register variables
  77. X                -Z  = optimize register usage
  78. X                -p  = pascal calling convention
  79. X     -DCdecl=cdecl  = for tagging variadic functions
  80. X
  81. XNote, however, that setting the -O switch means that the killer switch()
  82. Xstatement causes TC2.0 to act like it's gone out to lunch.  It hasn't;
  83. Xit's chugging away, albeit incredibly slowly.
  84. X-------------------------------------------------------------------------------
  85. XIBM PC / MSC 6.0, suggested by Raymond Chen (raymond@math.berkeley.edu)
  86. X
  87. Xcl -AS -Gr -J -Ozax -DCdecl=_cdecl -DMSDOS wp2x.c
  88. X
  89. X            -AS   = small model
  90. X            -Gr   = use fastcalls calling convention
  91. X            -J    = unsigned chars
  92. X            -Ozax = maximum optimization
  93. X   -DCdecl=_cdecl = for tagging variadic functions
  94. X-------------------------------------------------------------------------------
  95. XIBM PC / MS C 5.1, suggested by Richard Reiner <rreiner@nexus.yorku.ca>
  96. X
  97. Xcl -AS -Gc -J -Ox -DCdecl=cdecl -DMSDOS wp2x.c
  98. X
  99. X              -AS = small model
  100. X              -Gc = pascal calling convention
  101. X              -J  = unsigned chars
  102. X              -Ox = maximum optimization
  103. X    -DCdecl=cdecl = for tagging variadic functions
  104. END_OF_FILE
  105. if test 2229 -ne `wc -c <'HINTS'`; then
  106.     echo shar: \"'HINTS'\" unpacked with wrong size!
  107. fi
  108. # end of 'HINTS'
  109. fi
  110. if test -f 'README' -a "${1}" != "-c" ; then 
  111.   echo shar: Will not clobber existing file \"'README'\"
  112. else
  113. echo shar: Extracting \"'README'\" \(3174 characters\)
  114. sed "s/^X//" >'README' <<'END_OF_FILE'
  115. XBefore installing, make sure you have...
  116. X
  117. X    1.  The wp2x.c source code.
  118. X    2.  As many *.cfg files as you feel like using.
  119. X    3.  The manual page (wp2x.1l)
  120. X    4.  An ANSI-C compiler.  At a minimum, your compiler must understand...
  121. X                function prototypes
  122. X                enums
  123. X                <stdarg.h>
  124. X                vfprintf
  125. X
  126. X
  127. XInstallation procedure:
  128. X
  129. X    0.  Decide if you want to have a lib/wp2x directory.
  130. X
  131. X        If so, define the preprocessor symbol WP2X_DIR to its name,
  132. X        including double-quotation marks.  The supplied man page
  133. X        assumes you have chosen the name /usr/local/lib/wp2x.
  134. X        If you choose a different name, or decide not to install
  135. X        one, modify the man page accordingly.
  136. X
  137. X    1.  Read the section titled PORTABILITY CONCERNS in wp2x.c.
  138. X        Understand it.
  139. X
  140. X        If your operating system is not UNIX, MS-DOS,
  141. X        or the Amiga, also read dopen.c and (if you want) create
  142. X        a collection of #define's for your operating system, or live
  143. X        with the `generic' configuration.
  144. X
  145. X    2.  Compile wp2x.c with whatever compiler switches are necessary
  146. X        to accomplish what is described in PORTABILITY CONCERNS.
  147. X        See the file `HINTS' for suggestions.  If your operating
  148. X        system is one of those mentioned above, define the symbol
  149. X        `UNIX', `MSDOS' or `AMIGA' (respectively) to your preprocessor.
  150. X
  151. X    3.  Run the torture test by uudecoding torture.uue into torture.wp,
  152. X        then typing
  153. X
  154. X            wp2x ascii.cfg torture.wp >torture.out
  155. X
  156. X        It should produce eight warnings.
  157. X
  158. X        If torture.out is not identical to torture.chk, find out
  159. X    why and fix it.  (Or complain to the author.)
  160. X
  161. X    3.  Put the sample *.cfg files in a vaguely obvious place.
  162. X        Adjust the directory name in the man page to point to that
  163. X        vaguely obvious place.
  164. X
  165. X    4.  Put the executable and man page in the places such things are
  166. X        kept on your system.
  167. X
  168. XHistory:
  169. X
  170. X* The first WP2X was written in Spring 1989 as a volunteer effort for the
  171. X  Princeton University Computing and Information Technology Information
  172. X  Center.  (How's that for a mouthful.)  People seemed to need to convert
  173. X  WP4.2 files into other stuff, so I figured, hey, why not just hack one
  174. X  up?  How hard can it be?
  175. X
  176. X  It seemed to work fine, for the limited cases thrown at it.
  177. X
  178. X* During Summer 1989, some more control codes were added and a
  179. X  request for beta testers posted to the net.  Response was mild.
  180. X
  181. X* During Summer 1990, yet more control codes were added, and my
  182. X  beta testers from 1989 seemed to have forgotten about me, so the
  183. X  testing phase was abandoned.
  184. X
  185. X* During Summer 1991, I made another request for beta testers in
  186. X  comp.text.tex, and responses was decent.  The result of this testing
  187. X  phase is what you see before you.
  188. X
  189. XAuthor:
  190. X    Raymond Chen (raymond@math.berkeley.edu, rjc@math.princeton.edu)
  191. X
  192. XCopying:
  193. X    This program and its supporting files are Copyright 1991 by
  194. X    Raymond Chen.  You may distribute the program freely, provided
  195. X    it is distributed in its entirely, including this README file.
  196. X    Any modifications to the program should be clearly marked as such.
  197. END_OF_FILE
  198. if test 3174 -ne `wc -c <'README'`; then
  199.     echo shar: \"'README'\" unpacked with wrong size!
  200. fi
  201. # end of 'README'
  202. fi
  203. if test -f 'accent.cfg' -a "${1}" != "-c" ; then 
  204.   echo shar: Will not clobber existing file \"'accent.cfg'\"
  205. else
  206. echo shar: Extracting \"'accent.cfg'\" \(4270 characters\)
  207. sed "s/^X//" >'accent.cfg' <<'END_OF_FILE'
  208. X# Foreign character support for IBM PCs.
  209. X#
  210. X# Written 07/12/91 by Raymond Chen '89.
  211. X# Bug reports should go to him.
  212. X#
  213. X# If you change this file, please make a note of it in the comments.
  214. X#
  215. X# Version 0.0:  Initial version.
  216. X# Version 1.0:  troff support. 23-Jul-1991
  217. X# Version 2.0:  Raw characters changed to octal escape sequences.
  218. X
  219. X# Use the following table of accented characters if your destination
  220. X# is TeX.
  221. X
  222. X'\003'="{\\heartsuit}"
  223. X'\004'="{\\diamondsuit}"
  224. X'\005'="{\\clubsuit}"
  225. X'\006'="{\\spadesuit}"
  226. X'\007'="{\\bullet}"
  227. X'\011'="{\\circ}"
  228. X'\020'="{\\triangleright}"
  229. X'\021'="{\\triangleleft}"
  230. X'\022'="{\\updownarrow}"
  231. X'\024'="{\\P}"
  232. X'\025'="{\\S}"
  233. X'\030'="{\\uparrow}"
  234. X'\031'="{\\downarrow}"
  235. X'\032'="{\\rightarrow}"
  236. X'\033'="{\\leftarrow}"
  237. X'\035'="{\\leftrightarrow}"
  238. X'\036'="{\\bigtriangleup}"
  239. X'\037'="{\\bigtriangledown}"
  240. X
  241. X'\200'="\\c{C}"
  242. X'\201'="\\\"u"
  243. X'\202'="\\'e"
  244. X'\203'="\\^a"
  245. X'\204'="\\\"a"
  246. X'\205'="\\`a"
  247. X'\206'="{\\aa}"
  248. X'\207'="\\c{c}"
  249. X'\210'="\\^e"
  250. X'\211'="\\\"e"
  251. X'\212'="\\`e"
  252. X'\213'="\\\"{\\i}"
  253. X'\214'="\\^{\\i}"
  254. X'\215'="\\`{\\i}"
  255. X'\216'="\\\"A"
  256. X'\217'="{\\AA}"
  257. X'\220'="\\'E"
  258. X'\221'="{\\ae}"
  259. X'\222'="{\\AE}"
  260. X'\223'="\\^o"
  261. X'\224'="\\\"o"
  262. X'\225'="\\`o"
  263. X'\226'="\\^u"
  264. X'\227'="\\`u"
  265. X'\230'="\\\"y"
  266. X'\231'="\\\"O"
  267. X'\232'="\\\"U"
  268. X'\233'="\hbox{\\rlap/c}"
  269. X'\234'="{\\it\$}"
  270. X# A genuine `yen' symbol can be found in one of the LaTeX extension fonts.
  271. X'\235'="\\rlap=Y"
  272. X'\236'="Pt"
  273. X# We really ought to be using the unslanted italic font for this `f'.
  274. X'\237'="{\\it f\/}"
  275. X'\240'="\\'a"
  276. X'\241'="\\'{\\i}"
  277. X'\242'="\\'o"
  278. X'\243'="\\'u"
  279. X'\244'="\\~n"
  280. X'\245'="\\~N"
  281. X'\250'="?`"
  282. X'\252'="{\\lnot}"
  283. X'\255'="!`"
  284. X'\340'="{\\alpha}"
  285. X
  286. X# This is either a beta or a German ess-zet, depending on context.
  287. X# I'll assume it's an ess-zet.  If you want a beta, change this to
  288. X# '\341'="{\\beta}"
  289. X
  290. X'\341'="{\\ss}"
  291. X
  292. X'\342'="{\\Gamma}"
  293. X'\343'="{\\pi}"
  294. X'\344'="{\\Sigma}"
  295. X'\345'="{\\sigma}"
  296. X'\346'="{\\mu}"
  297. X'\347'="{\\tau}"
  298. X'\350'="{\\Phi}"
  299. X'\351'="{\\theta}"
  300. X'\352'="{\\Omega}"
  301. X'\353'="{\\delta}"
  302. X'\354'="{\\infty}"
  303. X'\355'="{\\phi}"
  304. X'\356'="{\\epsilon}"
  305. X'\357'="{\\cap}"
  306. X'\360'="{\\equiv}"
  307. X'\361'="{\\pm}"
  308. X'\362'="{\\ge}"
  309. X'\363'="{\\le}"
  310. X'\364'="{\\int}"
  311. X'\365'="{\\int}"
  312. X'\366'="{\\div}"
  313. X'\367'="{\\approx}"
  314. X'\370'="{^\\circ}"
  315. X'\371'="{\\bullet}"
  316. X'\372'="{\\cdot}"
  317. X'\373'="{\\sqrt}"
  318. X'\374'="{^n}"
  319. X'\375'="{^2}"
  320. X'\376'="{\vrule height.9ex width.8ex depth-.1ex}"
  321. X
  322. X# Use the following table of accented characters if your destination
  323. X# is troff without eqn.
  324. X
  325. X'\200'="\\(,C"
  326. X'\201'="\\(:u"
  327. X'\202'="\\('e"
  328. X'\203'="\\(^a"
  329. X'\204'="\\(:a"
  330. X'\205'="\\(`a"
  331. X'\206'="\\(oa"
  332. X'\207'="\\(,c"
  333. X'\210'="\\(^e"
  334. X'\211'="\\(:e"
  335. X'\212'="\\(`e"
  336. X'\213'="\\(:i"
  337. X'\214'="\\(^i"
  338. X'\215'="\\(`i"
  339. X'\216'="\\(:A"
  340. X'\217'="\\(oA"
  341. X'\220'="\\('E"
  342. X'\221'="\\(ae"
  343. X'\222'="\\(AE"
  344. X'\223'="\\(^o"
  345. X'\224'="\\(:o"
  346. X'\225'="\\(`o"
  347. X'\226'="\\(^u"
  348. X'\227'="\\(`u"
  349. X'\230'="\\(:y"
  350. X'\231'="\\(:O"
  351. X'\232'="\\(:U"
  352. X'\234'="\\(Po"
  353. X'\235'="\\(Ye"
  354. X'\236'="\\(Pt"
  355. X'\237'="\\fIf\\fP"
  356. X'\240'="\\('a"
  357. X'\241'="\\('i"
  358. X'\242'="\\('o"
  359. X'\243'="\\('u"
  360. X'\244'="\\(~n"
  361. X'\245'="\\(~N"
  362. X'\246'="\\(of"
  363. X'\247'="\\(Om"
  364. X'\250'="\\(r?"
  365. X'\252'="\\(no"
  366. X'\253'="\\(12"
  367. X'\254'="\\(14"
  368. X'\255'="\\(r!"
  369. X'\256'="\\(Fo"
  370. X'\257'="\\(Fc"
  371. X'\370'="\\(de"
  372. X'\365'="\\(rb"
  373. X'\376'="\\(sq"
  374. X
  375. X# This is either a beta or a German ess-zet, depending on context.
  376. X# I'll assume it's an ess-zet.  If you want a beta, change this to
  377. X# '\341'="\\(*b"
  378. X
  379. X'\341'="\\(ss"
  380. X
  381. X'\340'="\\(*a"
  382. X'\342'="\\(*G"
  383. X'\343'="\\(*p"
  384. X'\344'="\\(*S"
  385. X'\345'="\\(*s"
  386. X'\346'="\\(*m"
  387. X'\347'="\\(*t"
  388. X'\350'="\\(*f"
  389. X'\351'="\\(*T"
  390. X'\352'="\\(*W"
  391. X'\353'="\\(*d"
  392. X'\354'="\\(if"
  393. X'\355'="\\(/o"
  394. X'\356'="\\(*e"
  395. X'\357'="\\(ca"
  396. X'\360'="\\(=="
  397. X'\361'="\\(+-"
  398. X'\362'="\\(>="
  399. X'\363'="\\(<="
  400. X'\364'="\\(is"
  401. X'\366'="\\(dv"
  402. X'\367'="\\(~~"
  403. X'\371'="\\(bu"
  404. X'\372'="\\(md"
  405. X'\373'="\\(sr"
  406. X'\374'="\\(*y"
  407. X'\375'="\\(ps"
  408. X
  409. X# if you are also using eqn, then change the second half to
  410. X
  411. X'\340'=" alpha "
  412. X'\341'=" beta "
  413. X'\342'=" GAMMA "
  414. X'\343'=" pi "
  415. X'\344'=" SIGMA "
  416. X'\345'=" sigma "
  417. X'\346'=" mu "
  418. X'\347'=" tau "
  419. X'\350'=" Phi "
  420. X'\351'=" theta "
  421. X'\352'=" OMEGA "
  422. X'\353'=" delta "
  423. X'\354'=" infinity "
  424. X'\355'=" phi "
  425. X'\356'=" epsilon "
  426. X'\357'=" cap "
  427. X'\360'=" equiv "
  428. X'\361'=" +- "
  429. X'\362'=" ge "
  430. X'\363'=" le "
  431. X'\364'=" integral "
  432. X'\366'=" div "
  433. X'\367'=" approx "
  434. X'\371'=" bullet "
  435. X'\372'=" cdot "
  436. X'\373'=" sqrt "
  437. X'\374'=" sup n "
  438. X'\375'=" sup 2 "
  439. END_OF_FILE
  440. if test 4270 -ne `wc -c <'accent.cfg'`; then
  441.     echo shar: \"'accent.cfg'\" unpacked with wrong size!
  442. fi
  443. # end of 'accent.cfg'
  444. fi
  445. if test -f 'ascii.cfg' -a "${1}" != "-c" ; then 
  446.   echo shar: Will not clobber existing file \"'ascii.cfg'\"
  447. else
  448. echo shar: Extracting \"'ascii.cfg'\" \(4896 characters\)
  449. sed "s/^X//" >'ascii.cfg' <<'END_OF_FILE'
  450. X# ascii.cfg converts the WP file directly into an ASCII representation of
  451. X# same, which vaguely approximates the `show codes' screen.  Useful for
  452. X# debugging your configuration files.
  453. X
  454. X'\000'="[000]"
  455. X'\001'="[001]"
  456. X'\002'="[002]"
  457. X'\003'="[003]"
  458. X'\004'="[004]"
  459. X'\005'="[005]"
  460. X'\006'="[006]"
  461. X'\007'="[007]"
  462. X'\010'="[010]"
  463. X'\011'="[011]"
  464. X'\012'="[012]"
  465. X'\013'="[013]"
  466. X'\014'="[014]"
  467. X'\015'="[015]"
  468. X'\016'="[016]"
  469. X'\017'="[017]"
  470. X'\020'="[020]"
  471. X'\021'="[021]"
  472. X'\022'="[022]"
  473. X'\023'="[023]"
  474. X'\024'="[024]"
  475. X'\025'="[025]"
  476. X'\026'="[026]"
  477. X'\027'="[027]"
  478. X'\030'="[030]"
  479. X'\031'="[031]"
  480. X'\032'="[032]"
  481. X'\033'="[033]"
  482. X'\034'="[034]"
  483. X'\035'="[035]"
  484. X'\036'="[036]"
  485. X'\037'="[037]"
  486. X'\200'="[200]"
  487. X'\201'="[201]"
  488. X'\202'="[202]"
  489. X'\203'="[203]"
  490. X'\204'="[204]"
  491. X'\205'="[205]"
  492. X'\206'="[206]"
  493. X'\207'="[207]"
  494. X'\210'="[210]"
  495. X'\211'="[211]"
  496. X'\212'="[212]"
  497. X'\213'="[213]"
  498. X'\214'="[214]"
  499. X'\215'="[215]"
  500. X'\216'="[216]"
  501. X'\217'="[217]"
  502. X'\220'="[220]"
  503. X'\221'="[221]"
  504. X'\222'="[222]"
  505. X'\223'="[223]"
  506. X'\224'="[224]"
  507. X'\225'="[225]"
  508. X'\226'="[226]"
  509. X'\227'="[227]"
  510. X'\230'="[230]"
  511. X'\231'="[231]"
  512. X'\232'="[232]"
  513. X'\233'="[233]"
  514. X'\234'="[234]"
  515. X'\235'="[235]"
  516. X'\236'="[236]"
  517. X'\237'="[237]"
  518. X'\240'="[240]"
  519. X'\241'="[241]"
  520. X'\242'="[242]"
  521. X'\243'="[243]"
  522. X'\244'="[244]"
  523. X'\245'="[245]"
  524. X'\246'="[246]"
  525. X'\247'="[247]"
  526. X'\250'="[250]"
  527. X'\251'="[251]"
  528. X'\252'="[252]"
  529. X'\253'="[253]"
  530. X'\254'="[254]"
  531. X'\255'="[255]"
  532. X'\256'="[256]"
  533. X'\257'="[257]"
  534. X'\260'="[260]"
  535. X'\261'="[261]"
  536. X'\262'="[262]"
  537. X'\263'="[263]"
  538. X'\264'="[264]"
  539. X'\265'="[265]"
  540. X'\266'="[266]"
  541. X'\267'="[267]"
  542. X'\270'="[270]"
  543. X'\271'="[271]"
  544. X'\272'="[272]"
  545. X'\273'="[273]"
  546. X'\274'="[274]"
  547. X'\275'="[275]"
  548. X'\276'="[276]"
  549. X'\277'="[277]"
  550. X'\300'="[300]"
  551. X'\301'="[301]"
  552. X'\302'="[302]"
  553. X'\303'="[303]"
  554. X'\304'="[304]"
  555. X'\305'="[305]"
  556. X'\306'="[306]"
  557. X'\307'="[307]"
  558. X'\310'="[310]"
  559. X'\311'="[311]"
  560. X'\312'="[312]"
  561. X'\313'="[313]"
  562. X'\314'="[314]"
  563. X'\315'="[315]"
  564. X'\316'="[316]"
  565. X'\317'="[317]"
  566. X'\320'="[320]"
  567. X'\321'="[321]"
  568. X'\322'="[322]"
  569. X'\323'="[323]"
  570. X'\324'="[324]"
  571. X'\325'="[325]"
  572. X'\326'="[326]"
  573. X'\327'="[327]"
  574. X'\330'="[330]"
  575. X'\331'="[331]"
  576. X'\332'="[332]"
  577. X'\333'="[333]"
  578. X'\334'="[334]"
  579. X'\335'="[335]"
  580. X'\336'="[336]"
  581. X'\337'="[337]"
  582. X'\340'="[340]"
  583. X'\341'="[341]"
  584. X'\342'="[342]"
  585. X'\343'="[343]"
  586. X'\344'="[344]"
  587. X'\345'="[345]"
  588. X'\346'="[346]"
  589. X'\347'="[347]"
  590. X'\350'="[350]"
  591. X'\351'="[351]"
  592. X'\352'="[352]"
  593. X'\353'="[353]"
  594. X'\354'="[354]"
  595. X'\355'="[355]"
  596. X'\356'="[356]"
  597. X'\357'="[357]"
  598. X'\360'="[360]"
  599. X'\361'="[361]"
  600. X'\362'="[362]"
  601. X'\363'="[363]"
  602. X'\364'="[364]"
  603. X'\365'="[365]"
  604. X'\366'="[366]"
  605. X'\367'="[367]"
  606. X'\370'="[370]"
  607. X'\371'="[371]"
  608. X'\372'="[372]"
  609. X'\373'="[373]"
  610. X'\374'="[374]"
  611. X'\375'="[375]"
  612. X'\376'="[376]"
  613. X'\377'="[377]"
  614. X
  615. XBEGIN="[BOF]\n"
  616. XEND="[EOF]\n"
  617. XComment="["
  618. Xcomment=" not supported]\n"
  619. XHRt="[HRt]\n"
  620. XSRt="[SRt]\n"
  621. X
  622. XSetFn#="[SetFn#%1]"
  623. XFn="[Fn]"
  624. XFNote#="[FNote#]"
  625. Xfn="[fn]"
  626. X
  627. XEn="[En]"
  628. XENote#="[ENote#]"
  629. Xen="[en]"
  630. X
  631. X# Character attributes
  632. XUnd="[U]"
  633. Xund="[u]"
  634. XBold="[B]"
  635. Xbold="[b]"
  636. XRed="[Red]"
  637. Xred="[red]"
  638. XStrike="[Strike]"
  639. Xstrike="[strike]"
  640. XRev="[Reverse]"
  641. Xrev="[reverse]"
  642. XOver="[Overtype]"
  643. Xover="[overtype]"
  644. XSup="[Sup]"
  645. Xsup="[sup]"
  646. XSub="[Sub]"
  647. Xsub="[sub]"
  648. X
  649. X# Alignment
  650. XCenter="[C]"
  651. Xcenter="[c]"
  652. XCenterHere="[CHere]"
  653. Xcenterhere="[chere]"
  654. XAlign="[Align]"
  655. Xalign="[align]"
  656. XAlignChar="[Algn Char:%c]"
  657. XFlushRight="[Flsh Rt]"
  658. Xflushright="[flsh rt]"
  659. X
  660. XOver="[O]"
  661. Xover="[o]"
  662. X
  663. X# Hyphens and line breaking and layout
  664. XHyph="[Hyph]"
  665. Xhyph="[hyph]"
  666. XHZone="[HZone:%1,%2]"
  667. X-="[-]"
  668. X\--="[-eol]\n"
  669. X\-="[soft-]"
  670. X--="[soft-eol]\n"
  671. X=="[hard-]"
  672. XNoHyphWord="[/]"
  673. XHSpace="[ ]"
  674. XJust="[Just]"
  675. Xjust="[just]"
  676. X
  677. X# Tabs and indentation
  678. XTab="[Tab]"
  679. XBeginTabs="[Tab Set"
  680. XSetTab=" %1"
  681. XSetTabCenter=" %1c"
  682. XSetTabRight=" %1r"
  683. XSetTabDecimal=" %1d"
  684. XEndTabs="]\n"
  685. XIndent="[Ind]"
  686. Xindent="[ind]"
  687. XDIndent="[DIndent]"
  688. XMarginRelease="[Margin Release:%1]"
  689. X
  690. X# Line spacing
  691. XLS="[Line spacing: %1/2]"
  692. XSS="[Line spacing: 1]"
  693. X1.5S="[Line spacing: 3/2]"
  694. XDS="[Line spacing: 2]"
  695. XTS="[Line spacing: 3]"
  696. XLPI="[LPI:%1]"
  697. X
  698. X# Headers, footers, and page layout
  699. XHeader="[Header]"
  700. Xheader="[header]\n"
  701. XFooter="[Footer]"
  702. Xfooter="[footer]\n"
  703. XPageNo="[Page#]"
  704. XPN0="[Pg Numbering:None]"
  705. XPN1="[Pg Numbering:Top left]"
  706. XPN2="[Pg Numbering:Top center]"
  707. XPN3="[Pg Numbering:Top right]"
  708. XPN4="[Pg Numbering:Top L&R]"
  709. XPN5="[Pg Numbering:Bot left]"
  710. XPN6="[Pg Numbering:Bot center]"
  711. XPN7="[Pg Numbering:Bot right]"
  712. XPN8="[Pg Numbering:Bot L&R]"
  713. XRomanPage="[Pg Num:%1 (Roman)]"
  714. XArabicPage="[Pg Num:%1]"
  715. XTopMarg="[Top Margin:%1]"
  716. XMarg="[L/R Margin:%1,%2]"
  717. XPageLength="[Page Length:%1]"
  718. XCtrPg="[Center Pg]"
  719. XSupp="[Suppress %1]"
  720. XCondEOP="[Cndl EOP:%1/2]"
  721. XHPg="[HPg]\n"
  722. XUpHalfLine="[UpHalfLine]"
  723. XDownHalfLine="[DownHalfLine]"
  724. XAdvanceToHalfLine="[AdvanceToHalfLine:%1]"
  725. XWid="[W/O On]"
  726. Xwid="[W/O Off]"
  727. X
  728. X# Fonts and bins
  729. XSetFont="[Font %1cpi, #%2]"
  730. XSetBin="[Bin %1]"
  731. X
  732. X# Unsupported stuff
  733. XMath="[Math On]"
  734. Xmath="[Math Off]"
  735. XCol="[Col On]"
  736. Xcol="[Col Off]"
  737. XMathCalc="[MathCalc]"
  738. XMathCalcColumn="[!]"
  739. XSubTotal="[+]"
  740. XTotal="[=]"
  741. XIsSubTotal="[t]"
  742. XIsTotal="[T]"
  743. XGrandTotal="[*]"
  744. XNegateTotal="[N]"
  745. XTableMarker="[Table Marker]"
  746. END_OF_FILE
  747. if test 4896 -ne `wc -c <'ascii.cfg'`; then
  748.     echo shar: \"'ascii.cfg'\" unpacked with wrong size!
  749. fi
  750. # end of 'ascii.cfg'
  751. fi
  752. if test -f 'dopen.c' -a "${1}" != "-c" ; then 
  753.   echo shar: Will not clobber existing file \"'dopen.c'\"
  754. else
  755. echo shar: Extracting \"'dopen.c'\" \(4171 characters\)
  756. sed "s/^X//" >'dopen.c' <<'END_OF_FILE'
  757. X/*$Id: dopen.c 1.2 91/08/20 15:18:51 raymond Exp $*/
  758. X
  759. X/* dopen() is a massively system-dependent function, so I've placed
  760. X * it in a separate file.
  761. X */
  762. X
  763. X/* Macros used...
  764. X *
  765. X *  IS_ABS   -- a macro that returns nonzero if the string argument is an
  766. X *              absolute path, or 0 if it is a relative path.
  767. X *  PATH_STR -- a string of characters which separate directory components.
  768. X *  SUF_STR  -- suffix for configuration files
  769. X *  PATH_SEP -- character to separate directory from filename.
  770. X *  LIST_SEP -- character that separates pathnames in a list.
  771. X *  exists(f) -- returns nonzero if the file f exists.
  772. X *        if not defined, then use fopen to determine existence.
  773. X *  HAS_ENV  -- if defined, environment variables are searched.
  774. X *
  775. X */
  776. X
  777. X/*
  778. X *  Our algorithm is to try the following in sequence, until one works.
  779. X *
  780. X *  The filename as-is.
  781. X *  The filename with SUF_STR appended.
  782. X *
  783. X *  If IS_ABS returns nonzero, then fail.
  784. X *
  785. X *  Else, we call the system-dependent get_dir() function.  Each call
  786. X *  provides a directory to look in.
  787. X *
  788. X *  For each directory, append the filename (perhaps inserting the
  789. X *  PATH_SEP).  If that fails, try again after appending SUF_STR.
  790. X *
  791. X *  When we run out of directories, we fail.
  792. X */
  793. X
  794. X#ifdef UNIX
  795. X#define HAS_ENV
  796. X#define exists(f) (access(f, 0) == 0)
  797. X#define IS_ABS(f) (*f == '/')
  798. X#define SUF_STR ".cfg"
  799. X#define PATH_SEP '/'
  800. X#define PATH_STR "/"
  801. X#define LIST_SEP ':'
  802. X#endif
  803. X
  804. X#ifdef MSDOS
  805. X#define HAS_ENV
  806. X#include <io.h>
  807. X#define exists(f) (access(f, 0) == 0)
  808. X#define IS_ABS(f) (f[1] == ':' || strchr(PATH_STR, *f))
  809. X#define SUF_STR ".cfg"
  810. X#define PATH_SEP '/'
  811. X#define PATH_STR "/\\:"
  812. X#define LIST_SEP ';'
  813. X#endif
  814. X
  815. X#ifdef VMS                /* VMS is really different */
  816. X#define IS_ABS(f) (strchr(f, ':') || strchr(PATH_STR, *f))
  817. X#define SUF_STR ".cfg"
  818. X#define PATH_SEP '.'
  819. X#define PATH_STR "[.]"
  820. X#endif
  821. X
  822. X#ifdef AMIGA
  823. X#define IS_ABS(f) (strchr(f, ':') || *f == '/')
  824. X#define SUF_STR ".cfg"
  825. X#define PATH_SEP '/'
  826. X#define PATH_STR "/"
  827. X#endif
  828. X
  829. X/* If user specified no operating system, be very pessimistic.
  830. X * Don't do anything beyond adding the `.cfg. suffix.
  831. X */
  832. X#ifndef SUF_STR
  833. X#define IS_ABS 1
  834. X#define SUF_STR ".cfg"
  835. X#undef PATH_SEP
  836. X#undef PATH_STR
  837. X#undef HAS_ENV
  838. X#endif
  839. X
  840. X/* If we don't have an exists(), then we'll just use fopen. */
  841. X#ifndef exists
  842. X#define exists(f) (descriptor = fopen(f, "rt"))
  843. X#endif
  844. X
  845. X#ifdef HAS_ENV
  846. X/* We search a handful of environment variables */
  847. Xconst char *envlist[] = { "PATH", "DPATH", "WP2XDIR", NULL };
  848. X
  849. Xchar *get_dir(void)
  850. X{
  851. X    static const char **nextenv = envlist;
  852. X    static const char *nextpath = NULL;
  853. X    char *s;
  854. X
  855. X    /* get the next environment variable */
  856. X    while (nextpath == NULL || *nextpath == '\0') {
  857. X    if (*nextenv == NULL) return NULL;  /* out of ideas */
  858. X        nextpath = getenv(*nextenv++);
  859. X    }
  860. X
  861. X    /* copy the next path component into the string pool */
  862. X    /* We can ignore the UNIX convention that a null component
  863. X     * denotes the current directory, since the current directory
  864. X     * has already been searched before we get to this point.
  865. X     */
  866. X    s = pool;
  867. X    while (*nextpath && *nextpath != LIST_SEP) *s++ = *nextpath++;
  868. X    if (*nextpath) nextpath++;
  869. X
  870. X    return s;                /* where to append the filename */
  871. X}
  872. X#else
  873. X/* On non-UNIX systems, we don't have environment variables. */
  874. X/* We might have other things, though, so insert your local version here */
  875. Xchar *get_dir(void) { return NULL; }
  876. X#endif
  877. X
  878. X/* s is where to copy the filename, and f is the filename to try. */
  879. X
  880. Xint try_directory(char *s, const char *f)
  881. X{
  882. X    if (s > pool && !strchr(PATH_STR, s[-1])) *s++ = PATH_SEP;
  883. X    strcpy(s, f);
  884. X
  885. X    if (exists(pool) || (strcat(s, SUF_STR), exists(pool))) {
  886. X    if (!descriptor) descriptor = efopen(pool, "rt");
  887. X    return 1;
  888. X    }
  889. X
  890. X    return 0;
  891. X}
  892. X
  893. Xvoid dopen(const char *f)
  894. X{
  895. X    char *s;
  896. X
  897. X    /* First, try it as-is */
  898. X    if (try_directory(pool, f)) return;
  899. X
  900. X#ifdef WP2X_DIR
  901. X    strcpy(pool, WP2X_DIR);
  902. X    if (try_directory(strchr(pool, '\0'), f)) return;
  903. X#endif
  904. X
  905. X    /* Skip if an absolute path */
  906. X    if (!IS_ABS(f)) {
  907. X    /* Iterate through the possible directories */
  908. X    while (s = get_dir()) if (try_directory(s, f)) return;
  909. X    }
  910. X    error(NULL, "Cannot find file %s\n", f);
  911. X}
  912. END_OF_FILE
  913. if test 4171 -ne `wc -c <'dopen.c'`; then
  914.     echo shar: \"'dopen.c'\" unpacked with wrong size!
  915. fi
  916. # end of 'dopen.c'
  917. fi
  918. if test -f 'gml.cfg' -a "${1}" != "-c" ; then 
  919.   echo shar: Will not clobber existing file \"'gml.cfg'\"
  920. else
  921. echo shar: Extracting \"'gml.cfg'\" \(2339 characters\)
  922. sed "s/^X//" >'gml.cfg' <<'END_OF_FILE'
  923. X# GML configuration file for WP2X.
  924. X#
  925. X# Written 5/20/89 by Raymond Chen.
  926. X#
  927. X# If you change this file, please make a note of it below
  928. X# and in the BEGIN string.
  929. X#
  930. X# Version 0.0:  Initial version.
  931. X# Version 0.1:  COMMENT tag added 23-Jul-1991.
  932. X# Version 0.2:  Note numbers.
  933. X# Version 0.3:  New output scheme.
  934. X
  935. XHPg="%\n.pa\n"               # Hard page forces a new page
  936. XHRt="%\n"                    # Hard return does nothing; the :P will be
  937. X                             # produced when we hit a Tab.
  938. XSRt="%\n"                    # Soft return is a newline
  939. XTab=":P."                    # Tab marks the start of a new paragraph
  940. X
  941. X-="-"                        # Hyphens are hyphens
  942. X--="-+\\n"                   # Hyphen at the end of a line gets a +
  943. X=="-"                        # Nonbreaking hyphen (does it exist?)
  944. X\-=""                        # Discretionary hyphen does not exist
  945. X\--="+\n"                    # Discretonary hyphen at the end of the line
  946. X
  947. XUnd=":hp1."                  # Underlining uses level 1
  948. Xund=":ehp1."
  949. XBold=":hp2."                 # Boldface uses level 2
  950. Xbold=":ehp2."
  951. X
  952. X# Margins are left as comments, since changing the margin on the fly
  953. X# is tricky.
  954. XMarg="%\n.* left margin %1, right margin %2\n"
  955. X
  956. XIndent=":LQ."                # Assume we indent for long quotes.
  957. Xindent=":eLQ."               # It's a reasonable assumption.
  958. X
  959. XFn=":FN."                    # Standard tags.
  960. Xfn=":eFN."
  961. XEn=":EN."
  962. Xen=":eEN."
  963. XFNote#=""                    # Note numbers are automatically generated.
  964. XENote#=""                    # Note numbers are automatically generated.
  965. X
  966. X# Line spacing changes are treated by dropping into Script.
  967. X# This is dangerous, of course.
  968. X# There is no way to do spacing different from 1 or 2.
  969. X
  970. XSS="%\n.ss\n"
  971. X1.5S="%\n.* Switch to 1.5 spacing\n"
  972. XDS="%\n.ds\n"
  973. XTS="%\n.* Switch to triple spacing\n"
  974. XLS="%\n.* Switch to %1/2 spacing\n"
  975. X
  976. X# At the beginning of the file, we load the proper style file
  977. X# and the laser files.
  978. X# We also put in some identification.
  979. XBEGIN=".* This file was created by the WP2X program, using a GML
  980. X.* descriptor file (Version 0.3) written by Raymond Chen.
  981. X.*
  982. X.* Do not expect everything to be converted perfectly.
  983. X.*
  984. X.im gmlthesi
  985. X.im laser
  986. X:GDOC
  987. X:FRONTM
  988. X:eFRONTM
  989. X:BODY
  990. X"
  991. X
  992. X# At the end of the file, we close up some tags.
  993. XEND=".*
  994. X:eBODY
  995. X:eGDOC
  996. X.* End of file
  997. X"
  998. XComment="%\n.* "
  999. Xcomment="\n"
  1000. END_OF_FILE
  1001. if test 2339 -ne `wc -c <'gml.cfg'`; then
  1002.     echo shar: \"'gml.cfg'\" unpacked with wrong size!
  1003. fi
  1004. # end of 'gml.cfg'
  1005. fi
  1006. if test -f 'latex.cfg' -a "${1}" != "-c" ; then 
  1007.   echo shar: Will not clobber existing file \"'latex.cfg'\"
  1008. else
  1009. echo shar: Extracting \"'latex.cfg'\" \(6375 characters\)
  1010. sed "s/^X//" >'latex.cfg' <<'END_OF_FILE'
  1011. X# LaTeX configuration file for WP2X.
  1012. X#
  1013. X# Written 12/15/89 by Raymond Chen '89.
  1014. X# Updated 7/05/91 by Raymond Chen.
  1015. X#
  1016. X# If you change this file, please make a note of it below
  1017. X# and in the BEGIN string.  (And probably also in the typeout
  1018. X# string.)
  1019. X#
  1020. X# Version 0.0:  Initial version.
  1021. X# Version 0.2:  Add new tags, reorder existing tags for easier comparison.
  1022. X# Version 0.3:  Tab markers, improved(?) header/footer
  1023. X# Version 0.4:  Fix percent signs.
  1024. X# Version 0.5:  Add \begin{document}, discuss { } \
  1025. X# Version 0.6:  New output scheme.
  1026. X
  1027. Xtypeout="LaTeX descriptor file for WP2X by Raymond Chen\n"
  1028. X
  1029. X# At the beginning of the file, we claim to be using article style.
  1030. X
  1031. XBEGIN="%% This file was created by the WP2X program, using a LaTeX
  1032. X%% descriptor file (Version 0.6) written by Raymond Chen.
  1033. X%% Do not expect everything to be converted perfectly.
  1034. X%%
  1035. X\\documentstyle{article}
  1036. X\\begin{document}
  1037. X%%
  1038. X"
  1039. X
  1040. X# At the end of the file, we end the document.
  1041. XEND="\\end{document}
  1042. X%% That's all, folks.
  1043. X"
  1044. X
  1045. X# How to make a one-line comment in LaTeX.
  1046. XComment="%\n"
  1047. Xcomment="\n"
  1048. X
  1049. X# Protect percent signs and other magic symbols.
  1050. X'%'="\\%%"
  1051. X'$'="\\$"
  1052. X'#'="\\#"
  1053. X'&'="\\&"
  1054. X'^'="\\^{}"
  1055. X'_'="\\_"
  1056. X'~'="\\~{}"
  1057. X
  1058. X# Curly braces and backslashes are intentionally left untranslated.
  1059. X# If you want them to be converted, uncomment these three lines.
  1060. X#
  1061. X#   '{'="$\\{$"
  1062. X#   '}'="$\\}$"
  1063. X#   '\\'="$\\backslash$"
  1064. X#
  1065. X# These characters are left untranslated because they do not exist
  1066. X# in the TeX font tables.  I.e., they won't be printed in boldface
  1067. X# or italic or whatever font you selected; they always come from
  1068. X# the math font.
  1069. X
  1070. X# Now the actual code expansions.
  1071. X
  1072. X# Many of these tags emit comments, since there is an official LaTeX way
  1073. X# of doing them.
  1074. X
  1075. XPageNo="\\folio{}"           # insert page number
  1076. XRomanPage="%\n%% Set roman page number %1\n"    # set roman numerals
  1077. XArabicPage="%\n%% Set arabic page number %1\n"  # set arabic numerals
  1078. X
  1079. XHSpace="~"                   # Unbreakable space
  1080. X
  1081. XTab="\\indent "              # Tabs mean to indent and start a new para.
  1082. XHPg="%\n\\vfill\\eject\n"    # Hard page is just a \vfill\eject
  1083. XCondEOP="%\n%% Conditional end-of-page for %1 lines\n"
  1084. X
  1085. XHRt="%\n\n"                  # Hard return becomes a blank line
  1086. XSRt="%\n"                    # Soft return is a newline
  1087. X
  1088. X-="-"                        # Hyphens are hyphens
  1089. X--="-%%\n"                   # Hyphen at the end of a line gets a %
  1090. X=="{-}"                      # Nonbreaking hyphen
  1091. X\-="\\-"                     # Discretionary hyphen
  1092. X\--="\\-%%\n"                # Discretionary hyphen at the end of the line
  1093. XNoHyphWord="\\mbox{}"        # Inhibit hyphenation of this word
  1094. X
  1095. X# Margins are left as comments, since you shouldn't change margins
  1096. X# willy-nilly in LaTeX.
  1097. XMarg="%%\n%% left margin %1, right margin %2\n"
  1098. XTopMarg="%%\n%% top margin %1\n"
  1099. XPageLength="%%\n%% page length %1\n"
  1100. X
  1101. X# Line spacing changes are treated by setting \baselinestretch and then
  1102. X# calling \normalbaselines to let the change take effect.
  1103. X
  1104. XSS="\\def\\baselinestretch{1}\\normalbaselines\n"
  1105. X1.5S="\\def\\baselinestretch{1.5}\\normalbaselines\n"
  1106. XDS="\\def\\baselinestretch{2}\\normalbaselines\n"
  1107. XTS="\\def\\baselinestretch{3}\\normalbaselines\n"
  1108. XLS="{\\count0=%1 \\count1=\\count0 \\divide\\count1 by 2
  1109. X\\global\\edef\\baselinestretch{\\number\\count1\\ifodd\\count0.5\\fi}}
  1110. X\\normalbaselines}
  1111. X"
  1112. XLPI="%\n%% Change to %1 lines per inch\n"
  1113. X
  1114. XBold="{\\bf "                # Boldface
  1115. Xbold="}"
  1116. XUnd="{\\em "                 # Underlining is in "emphasized"
  1117. Xund="\\/}"                   # with italic correction stuck in always.
  1118. XRed="{\\redline "            # Redline
  1119. Xred="}"
  1120. XStrike="{\\strikeout "       # Strikeout
  1121. Xstrike="}"
  1122. XRev="{\\reverse "            # Reverse video
  1123. Xrev="}"
  1124. XOver="\\llap{"               # Overprinting is faked with \llap
  1125. Xover="}"
  1126. XSup="\\raise.5ex\\hbox{"     # fake superscript
  1127. Xsup="}"
  1128. XSub="\\lower.5ex\\hbox{"     # fake subscript
  1129. Xsub="}"
  1130. X
  1131. X# UpHalfLine, DownHalfLine, AdvanceToHalf -- undefined
  1132. X
  1133. XIndent="{\\narrower "        # Indented paragraphs use \narrower; this
  1134. XDIndent="{\\narrower "       # is not a perfect solution, but it's a start.
  1135. Xindent="\\par}\n"
  1136. XMarginRelease="%\n%% Margin release, move back %1 characters\n"
  1137. X
  1138. XCenter="%\n\\begin{center}\n"   # enter centering environment
  1139. Xcenter="%\n\\end{center}"
  1140. XCenterHere="%\n\\begin{centerhere}\n" # Not supported
  1141. Xcenterhere="%\n\\end{centerhere}"
  1142. X
  1143. XAlign="%\n\\begin{align}\n"             # Not supported
  1144. Xalign="%\n\\end{align}"
  1145. XFlushRight="%\n\\begin{flushright}\n"
  1146. Xflushright="%\n\\end{flushright}"
  1147. X
  1148. X# Math, math, MathCalc, MathCalcColumn, SubTtl, IsSubTtl, Ttl, IsTtl, GrandTtl
  1149. X# Col, col -- undefined
  1150. X
  1151. XFn="%\n\\begin{footnote}\n"     # begin footnote
  1152. Xfn="%\n\\end{footnote}\n"
  1153. XSetFn#="%\n%% Set Footnote number to %1\n" # don't do this in LaTeX
  1154. XEn="%\n\\begin{endnote}\n"      # You'll have to write your own endnote environ.
  1155. Xen="%\n\\end{endnote}\n"
  1156. XFNote#=""                          # Note numbers are automatically generated.
  1157. XENote#=""                          # Note numbers are automatically generated.
  1158. X
  1159. X# TableMarker -- undefined
  1160. X
  1161. XBeginTabs="%\n%% Set tabs at"
  1162. XSetTab=" %1"
  1163. XSetTabCenter=" %1c"
  1164. XSetTabRight=" %1r"
  1165. XSetTabDecimal=" %1d"
  1166. XEndTabs="\n"
  1167. X
  1168. XHyph="\\hyphenpenalty=50\n"        # Allow hyphenation
  1169. Xhyph="\\hyphenpenalty=10000\n"     # Disable hyphenation
  1170. XJust="\\rightskip=0pt\n"           # Right justify
  1171. Xjust="\\raggedright\n"             # Ragged right
  1172. XWid="\\clubpenalty=150 \\widowpenalty=150\n" # Widow protection
  1173. Xwid="\\clubpenalty=0 \\widowpenalty=0\n" # Allow widows
  1174. X
  1175. X# HZone, DAlign -- undefined
  1176. X
  1177. X# These guys are left as comments, since you're not supposed to do
  1178. X# them in LaTeX.
  1179. XHeader="%\n%% Change header to\n\\toks0={"
  1180. Xheader="}\n"
  1181. XFooter="%\n%% Change footer to\n\\toks0={"
  1182. Xfooter="}\n"
  1183. XSupp="%\n%% Suppress headers and footers on this page\n"
  1184. XCtrPg="%\n%% Center this page vertically\n"
  1185. XSetFont="%\n%% Change to %1 pitch, font %2\n"
  1186. XSetBin="%\n%% Change to paper bin %1\n"
  1187. X
  1188. X# Same reason for these.
  1189. XPN0="%\n%% no page numbers\n"
  1190. XPN1="%\n%% page numbers in upper left corner\n"
  1191. XPN2="%\n%% page numbers top center\n"
  1192. XPN3="%\n%% page numbers in upper right corner\n"
  1193. XPN4="%\n%% page numbers in alternating even/odd upper corners\n"
  1194. XPN5="%\n%% page numbers in bottom left corner\n"
  1195. XPN6="%\n%% page numbers bottom center\n"
  1196. XPN7="%\n%% page numbers in bottom right corner\n"
  1197. XPN8="%\n%% page numbers in alternating even/odd bottom corners\n"
  1198. END_OF_FILE
  1199. if test 6375 -ne `wc -c <'latex.cfg'`; then
  1200.     echo shar: \"'latex.cfg'\" unpacked with wrong size!
  1201. fi
  1202. # end of 'latex.cfg'
  1203. fi
  1204. if test -f 'sample.cfg' -a "${1}" != "-c" ; then 
  1205.   echo shar: Will not clobber existing file \"'sample.cfg'\"
  1206. else
  1207. echo shar: Extracting \"'sample.cfg'\" \(3895 characters\)
  1208. sed "s/^X//" >'sample.cfg' <<'END_OF_FILE'
  1209. X# Sample configuration file for WP2X for a mythical conversion job.
  1210. X#
  1211. X# This is a configuration file that might be used to convert a
  1212. X# multi-chapter paper from WordPerfect into LaTeX.
  1213. X#
  1214. X# One way to approach writing a configuration file is to first use a null.cfg
  1215. X# file that defines nothing, then run your WP file through it, making careful
  1216. X# note of the warning messages.  Then study how those tokens are used in the
  1217. X# WP file and write a configuration file based thereon.
  1218. X#
  1219. X# We will use article style.  See the description of HPg for why there is
  1220. X# a =section at the end of the BEGIN string.
  1221. X
  1222. XBEGIN="\\documentstyle{article}\n=section"
  1223. XEND="\\end{document}\n"
  1224. X
  1225. X# How to make a one-line comment in LaTeX.
  1226. XComment="%\n%% "
  1227. Xcomment="\n"
  1228. X
  1229. X# Protect percent signs and other magic symbols.
  1230. X'%'="\\%%"
  1231. X'$'="\\$"
  1232. X'#'="\\#"
  1233. X'&'="\\&"
  1234. X'^'="\\^{}"
  1235. X'_'="\\_"
  1236. X'~'="\\~{}"
  1237. X
  1238. X# Now the actual code expansions.  These are taken straight from latex.cfg
  1239. X
  1240. XHSpace="~"                   # Unbreakable space
  1241. XHRt="%\n\n"                  # Hard return becomes a blank line
  1242. XSRt="%\n"                    # Soft return is a newline
  1243. X-="-"                        # Hyphens are hyphens
  1244. X--="-%%\n"                   # Hyphen at the end of a line gets a %
  1245. X=="{-}"                      # Nonbreaking hyphen
  1246. X\-="\\-"                     # Discretionary hyphen
  1247. X\--="\\-%%\n"                # Discretionary hyphen at the end of the line
  1248. X
  1249. XUnd="{\\em "                 # Underlining is in "emphasized"
  1250. Xund="\\/}"                   # with italic correction stuck in always.
  1251. X
  1252. X# As part of the postprocessing, I'd probably want to remove spurious italic
  1253. X# corrections, via
  1254. X#
  1255. X#    %s/\\\/},/},/g
  1256. X#    %s/\\\/}./}./g
  1257. X#
  1258. X# The only time boldface is used is in the section headings, so I can make
  1259. X# the codes expand to nothing, since LaTeX boldfaces the section headings
  1260. X# automatically.
  1261. XBold=""
  1262. Xbold=""
  1263. X
  1264. X# Since my paper never uses the equal-sign `=', I can use it as a special
  1265. X# tag in the output file.
  1266. X#
  1267. X# The style used in this paper is that all section and subsection headings
  1268. X# appear as centered lines, and centered lines are used nowhere else in
  1269. X# the paper.  Sections start after a hard page break; subsections continue
  1270. X# in the middle of a page.  So what we'll do is leave a tag here, then
  1271. X# postprocess the output with some vi macros.
  1272. X
  1273. XHPg="%\n\n=section"
  1274. XCenter="=center{"
  1275. Xcenter="}\n"
  1276. X
  1277. X# Afterwards, the following vi commands will turn the centering commands
  1278. X# into the proper \section or \subsection commands.
  1279. X#
  1280. X#   %s/^=section=center/\\section/
  1281. X#   %s/^=center/\\subsection/
  1282. X#
  1283. X
  1284. X# The only time single spacing is needed is during quotations, so we'll
  1285. X# use SS and DS as signals to enter and exit the quotation environment.
  1286. X# This produces a spurious \end{quote} at the top of the document, which
  1287. X# we'll delete as part of the postprocessing.  Consequently, I don't
  1288. X# need DIndent, since the {quote} environment does that for me.
  1289. X
  1290. XSS="%\n\\begin{quote}\n"
  1291. XDS="%\n\\end{quote}\n"
  1292. XDIndent=""
  1293. Xindent=""
  1294. X
  1295. X# The only characters I use overlap to produce is a capital O with a slash
  1296. X# through it.  So afterwards, a simple
  1297. X#
  1298. X#   %s/O=<\//{\\O}/g
  1299. X#
  1300. X# will turn all `O overprint /' into `{\O}'.
  1301. X#
  1302. XOver="=<"
  1303. Xover=""
  1304. X
  1305. X# Though I do need some other accented characters for words like
  1306. X# r\'egime, r\^ole, na\"{\i}ve, and co\"operation.
  1307. X'\202'="\\'e"
  1308. X'\223'="\\^o"
  1309. X'\213'="\\\"{\\i}"
  1310. X'\224'="\\\"o"
  1311. X
  1312. XFn="%\n\\begin{footnote}\n"     # begin footnote
  1313. Xfn="%\n\\end{footnote}\n"
  1314. XFNote#=""                    # Note numbers are automatically generated.
  1315. XENote#=""                    # Note numbers are automatically generated.
  1316. X
  1317. X# I'll ignore headers and footers and suppression, since LaTeX does
  1318. X# that automatically.
  1319. X# them in LaTeX.
  1320. XHeader="%\n%% header\n\\toks0={"
  1321. Xheader="} %% delete these lines!\n"
  1322. XFooter="%\n%% footer\n\\toks0={"
  1323. Xfooter="} %% delete these lines!\n"
  1324. XSupp=""
  1325. XPN0=""
  1326. XPN1=""
  1327. XPN2=""
  1328. XPN3=""
  1329. XPN4=""
  1330. XPN5=""
  1331. XPN6=""
  1332. XPN7=""
  1333. XPN8=""
  1334. END_OF_FILE
  1335. if test 3895 -ne `wc -c <'sample.cfg'`; then
  1336.     echo shar: \"'sample.cfg'\" unpacked with wrong size!
  1337. fi
  1338. # end of 'sample.cfg'
  1339. fi
  1340. if test -f 'script.cfg' -a "${1}" != "-c" ; then 
  1341.   echo shar: Will not clobber existing file \"'script.cfg'\"
  1342. else
  1343. echo shar: Extracting \"'script.cfg'\" \(2174 characters\)
  1344. sed "s/^X//" >'script.cfg' <<'END_OF_FILE'
  1345. X# Script configuration file for WP2X.
  1346. X#
  1347. X# Written 5/20/89 by Raymond Chen.
  1348. X# If you change this file, please make a note of it below
  1349. X# and in the BEGIN string.
  1350. X#
  1351. X# Version 0.0:  Initial version.
  1352. X# Version 0.1:  COMMENT tag added 23-Jul-1991.
  1353. X# Version 0.2:  Note numbers.
  1354. X# Version 0.3:  New output scheme.
  1355. X
  1356. XHPg="%\n.pa\n"               # Hard page forces a new page
  1357. XHRt="%\n"                    # Hard return does nothing; the .pp will be
  1358. X                             # produced when we hit a Tab.
  1359. XSRt="%\n"                    # Soft return is a newline
  1360. XTab=".pp\n"                  # Tab marks the start of a new paragraph
  1361. X
  1362. X-="-"                        # Hyphens are hyphens
  1363. X--="-+\\n"                   # Hyphen at the end of a line gets a +
  1364. X=="-"                        # Nonbreaking hyphen (does it exist?)
  1365. X\-=""                        # Discretionary hyphen does not exist
  1366. X\--="+\n"                    # Discretonary hyphen at the end of the line
  1367. X
  1368. XUnd="+\n.us "                # Underlining
  1369. Xund="|"
  1370. XBold="+\n.bd "               # Boldface
  1371. Xbold="|"
  1372. X
  1373. X# Margins are left as comments, since changing the margin on the fly
  1374. X# is tricky.
  1375. XMarg="%\n.* left margin %1, right margin %2\n"
  1376. X
  1377. XIndent="%\n.in +5\n"         # Push our margin in, please.
  1378. Xindent="%\n.in\n"            # Pop it back.
  1379. X
  1380. XFn="%\n.footnote\n"          # You'll have to write these macros yourself.
  1381. Xfn="%\n.footnote end\n"
  1382. XEn="%\n.endnote\n"
  1383. Xen="%\n.endnote end\n"
  1384. XFNote#=""                    # Note numbers should be automatically generated.
  1385. XENote#=""                    # Note numbers should be automatically generated.
  1386. X
  1387. X# There is no way to do spacing different from 1 or 2.
  1388. X
  1389. XSS="%\n.ss\n"
  1390. X1.5S="%\n.* Switch to 1.5 spacing\n"
  1391. XDS="%\n.ds\n"
  1392. XTS="%\n.* Switch to triple spacing\n"
  1393. XLS="%\n.* Switch to %1/2 spacing\n"
  1394. X
  1395. X# At the beginning of the file, we load the proper style file
  1396. X# and the laser files.
  1397. X# We also put in some identification.
  1398. XBEGIN=".* This file was created by the WP2X program, using a Script
  1399. X.* descriptor file (Version 0.3) written by Raymond Chen.
  1400. X.*
  1401. X.* Do not expect everything to be converted perfectly.
  1402. X.*
  1403. X.dc cont +
  1404. X.ud set |
  1405. X"
  1406. XEND="\n.* End of file\n"
  1407. X
  1408. XComment="%\n.* "
  1409. Xcomment="\n"
  1410. END_OF_FILE
  1411. if test 2174 -ne `wc -c <'script.cfg'`; then
  1412.     echo shar: \"'script.cfg'\" unpacked with wrong size!
  1413. fi
  1414. # end of 'script.cfg'
  1415. fi
  1416. if test -f 'torture.chk' -a "${1}" != "-c" ; then 
  1417.   echo shar: Will not clobber existing file \"'torture.chk'\"
  1418. else
  1419. echo shar: Extracting \"'torture.chk'\" \(3825 characters\)
  1420. sed "s/^X//" >'torture.chk' <<'END_OF_FILE'
  1421. X[BOF]
  1422. XTesting headers and footers and tab settings and stuff people[SRt]
  1423. Xtraditionally put at the top of a document.[HRt]
  1424. X[Top Margin:18][Page Length:66][L/R Margin:10,73][Pg Numbering:Bot center][Pg Num:256 (Roman)][HRt]
  1425. X[Header][C]Page [Page#][c][HRt]
  1426. X[header]
  1427. X[Footer]Title[Flsh Rt]Chapter[flsh rt][HRt]
  1428. X[footer]
  1429. X[Suppress 242][Center Pg][B][C]Greetings, world[b][c][HRt]
  1430. X[Header][C]Header B[c][HRt]
  1431. X[C]is two lines long[c][HRt]
  1432. X[header]
  1433. X[HRt]
  1434. X[Tab Set 15 20d 25d 50c 65r]
  1435. X[HRt]
  1436. X[Tab]Funky[Align]tabs[align][Tab][CHere]set[chere][Align]here[align][HRt]
  1437. X[Tab Set 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70]
  1438. X[HRt]
  1439. X[Tab][Ind][Margin Release:0]Hanging indent.[ind][HRt]
  1440. X[HRt]
  1441. XStrange c[Red]h[red][Strike]a[strike][Sup]r[sup][Sub]a[sub]cter attributes.[Pg Num:6][HPg]
  1442. XTesting control characters.[HRt]
  1443. X[000][001][002][003][004][005][006][007][HRt]
  1444. X[010][011][012][013][014][015][016][017][HRt]
  1445. X[020][021][022][023][024][025][026][027][HRt]
  1446. X[030][031][032][033][034][035][036][037][HRt]
  1447. XTesting extended ASCII characters.[HRt]
  1448. X[200][201][202][203][204][205][206][207][HRt]
  1449. X[210][211][212][213][214][215][216][217][HRt]
  1450. X[220][221][222][223][224][225][226][227][HRt]
  1451. X[230][231][232][233][234][235][236][237][HRt]
  1452. X[240][241][242][243][244][245][246][247][HRt]
  1453. X[250][251][252][253][254][255][256][257][HRt]
  1454. X[260][261][262][263][264][265][266][267][HRt]
  1455. X[270][271][272][273][274][275][276][277][HRt]
  1456. X[300][301][302][303][304][305][306][307][HRt]
  1457. X[310][311][312][313][314][315][316][317][HRt]
  1458. X[320][321][322][323][324][325][326][327][HRt]
  1459. X[330][331][332][333][334][335][336][337][HRt]
  1460. X[340][341][342][343][344][345][346][347][HRt]
  1461. X[350][351][352][353][354][355][356][357][HRt]
  1462. X[360][361][362][363][364][365][366][367][HRt]
  1463. X[370][371][372][373][374][375][376][377][HRt]
  1464. X[Cndl EOP:12/2][HRt]
  1465. XTesting [footnote attributes not supported]
  1466. Xfootnotes[SetFn#513][Fn][FNote#]Footnote number 512.  [U]u[B]bu[b][u] again [FNote#][HRt]
  1467. X[C]29c@/ postage.[c][HRt]
  1468. X[fn] and endnotes[En][ENote#][Ind]An endnote that goes on for quite some time, taking up[SRt]
  1469. Xvaluable space in the file that could be better used testing[SRt]
  1470. Xsomething else.[ind][HRt]
  1471. X[en], as well as line breaks,[HZone:3,2] [Hyph]hyphen[-eol]
  1472. Xation [/]suppression, sug[soft-]gested hyphens, as[-]yet[-]unused and used soft[soft-eol]
  1473. Xhyphens, and never[hard-]to[hard-]be[hard-]use hyphens.[hyph][Tab]Tabs in the middle of a line[SRt]
  1474. Xare problematic, as well as [Ind]indented paragraphs that don't begin[SRt]
  1475. Xuntil the middle of a paragraph.[ind][HRt]
  1476. X[HRt]
  1477. X[Line spacing: 5/2][just][DIndent]Very unusual is a double[-]spaced doubly[-]indented[SRt]
  1478. Xparagraph, since typically doubly[-]indented paragraphs are[SRt]
  1479. X[U]single[u][-]spaced.  (signed) Dr.[ ]Frankenstein.[ind][HRt]
  1480. X[Line spacing: 3/2][Just][HRt]
  1481. X[Tab][Tab][CHere]centering around[chere][Tab][Tab][CHere]tab stops[chere] or [Tab][Tab][Align]decimal[align].points[Flsh Rt]flush right[flsh rt][HRt]
  1482. X[Line spacing: 1]Neither columns [define column not supported]
  1483. Xnor math[define math columns not supported]
  1484. X[Math On] is supported.[HRt]
  1485. X[Col On]left[HPg]
  1486. Xright2[Align][align][Align]3[align].00[!][HRt]
  1487. X[Align]4[align][HRt]
  1488. X[Align]3[align][HRt]
  1489. X[Align]4[align][HRt]
  1490. X[Align]11[align].00[+][HRt]
  1491. X[Align]11[align].00[=][HRt]
  1492. X[Align][t][align][HRt]
  1493. X[Align][T][align][HRt]
  1494. X[Align]11[align].00[*][HRt]
  1495. X[Align][N][align][HRt]
  1496. X[Math Off][HRt]
  1497. X[W/O On]Back to the usual nonsense of text processing, like alignment[SRt]
  1498. Xcharacters[Algn Char:@], and outline mode (unsupported)[paragraph numbering style not supported]
  1499. X[HRt]
  1500. X[Tab][numbered paragraph not supported]
  1501. X[Ind]Part A[ind][HRt]
  1502. X[Tab][Tab][numbered paragraph not supported]
  1503. X[Ind]Part a.1[ind][HRt]
  1504. X[Tab][numbered paragraph not supported]
  1505. X number three, whatever that is[HRt]
  1506. X[begin marked text not supported]
  1507. X[end marked text not supported]
  1508. X[define index mark not supported]
  1509. X[EOF]
  1510. END_OF_FILE
  1511. if test 3825 -ne `wc -c <'torture.chk'`; then
  1512.     echo shar: \"'torture.chk'\" unpacked with wrong size!
  1513. fi
  1514. # end of 'torture.chk'
  1515. fi
  1516. if test -f 'torture.uue' -a "${1}" != "-c" ; then 
  1517.   echo shar: Will not clobber existing file \"'torture.uue'\"
  1518. else
  1519. echo shar: Extracting \"'torture.uue'\" \(3761 characters\)
  1520. sed "s/^X//" >'torture.uue' <<'END_OF_FILE'
  1521. Xbegin 644 torture.wp
  1522. XM5&5S=&EN9R!H96%D97)S(&%N9"!F;V]T97)S(&%N9"!T86(@<V5T=&EN9W,@
  1523. XM86YD('-T=69F('!E;W!L90UT<F%D:71I;VYA;&QY('!U="!A="!T:&4@=&]P
  1524. XM(&]F(&$@9&]C=6UE;G0N"LX`$L[0``!"9M#````*2<#&``;&QP``@0#'"M$`
  1525. XM`/__``##`"LHPU!A9V4@`O\"!-'1`@#__P``5&ET;&7$"DU&Q$-H87!T97+_
  1526. XM`@;1S_+/AIW#`"LCPT=R965T:6YG<RP@=V]R;&2<@PK1`0#__P``PP`K)\-(
  1527. XM96%D97(@0H,*PP`K(\-I<R!T=V\@;&EN97,@;&]N9X,*_P()T0KQ````````
  1528. XM````````````````````````````````````````````````````````````
  1529. XM```!"$```"``0````````````````````````````````S$@````````````
  1530. XM``````````#Q"@E&=6YK><0N&17$=&%B<X,)PP$R,<-S972#Q"Y!/<1H97)E
  1531. XM@PKQ````````````````````````````````````````````````````````
  1532. XM`````````````(0A"$(0A"$(0@``````````````````````````````````
  1533. XM```````S$@````````````#Q"@G,``#,P@#"2&%N9VEN9R!I;F1E;G0N"@I3
  1534. XM=')A;F=E(&.0:)&289.\<KUA8W1E<B!A='1R:6)U=&5S+L<````&QPQ497-T
  1535. XM:6YG(&-O;G1R;VP@8VAA<F%C=&5R<RX*X0#AX0'AX0+AX0/AX03AX07AX0;A
  1536. XMX0?A"N$(X>$)X>$*X>$+X>$,X>$-X>$.X>$/X0KA$.'A$>'A$N'A$^'A%.'A
  1537. XM%>'A%N'A%^$*X1CAX1GAX1KAX1OAX1SAX1WAX1[AX1_A"E1E<W1I;F<@97AT
  1538. XM96YD960@05-#24D@8VAA<F%C=&5R<RX*X8#AX8'AX8+AX8/AX83AX87AX8;A
  1539. XMX8?A"N&(X>&)X>&*X>&+X>&,X>&-X>&.X>&/X0KAD.'AD>'ADN'AD^'AE.'A
  1540. XME>'AEN'AE^$*X9CAX9GAX9KAX9OAX9SAX9WAX9[AX9_A"N&@X>&AX>&BX>&C
  1541. XMX>&DX>&EX>&FX>&GX0KAJ.'AJ>'AJN'AJ^'AK.'AK>'AKN'AK^$*X;#AX;'A
  1542. XMX;+AX;/AX;3AX;7AX;;AX;?A"N&XX>&YX>&ZX>&[X>&\X>&]X>&^X>&_X0KA
  1543. XMP.'AP>'APN'AP^'AQ.'AQ>'AQN'AQ^$*X<CAX<GAX<KAX<OAX<SAX<WAX<[A
  1544. XMX<_A"N'0X>'1X>'2X>'3X>'4X>'5X>'6X>'7X0KAV.'AV>'AVN'AV^'AW.'A
  1545. XMW>'AWN'AW^$*X>#AX>'AX>+AX>/AX>3AX>7AX>;AX>?A"N'HX>'IX>'JX>'K
  1546. XMX>'LX>'MX>'NX>'OX0KA\.'A\>'A\N'A\^'A].'A]>'A]N'A]^$*X?CAX?GA
  1547. XMX?KAX?OAX?SAX?WAX?[AX?_A"LH,R@I497-T:6YG(.,`````````````````
  1548. XM````````````````````````````````````````````````````````````
  1549. XM``````````````````````("!J0!80``````O.(`````````````````````
  1550. XM``````````````````4@("`@(+SB````````````````````````````````
  1551. XMXV9O;W1N;W1E<^0```0`Y.(!"'-S<W-S<_\``(U&;V]T;F]T92!N=6UB97(@
  1552. XM-3$R+B`@E'6=8G6<E2!A9V%I;B"-"L,`*R3#,CEC0"\@<&]S=&%G92Z#"N(@
  1553. XM86YD(&5N9&YO=&5SX@(``0$!`/\``(W,``#,06X@96YD;F]T92!T:&%T(&=O
  1554. XM97,@;VX@9F]R('%U:71E('-O;64@=&EM92P@=&%K:6YG('5P#79A;'5A8FQE
  1555. XM('-P86-E(&EN('1H92!F:6QE('1H870@8V]U;&0@8F4@8F5T=&5R('5S960@
  1556. XM=&5S=&EN9PUS;VUE=&AI;F<@96QS92[B+"!A<R!W96QL(&%S(&QI;F4@8G)E
  1557. XM86MS+,4```,"Q2"?:'EP:&5NK6%T:6]N()IS=7!P<F5S<VEO;BP@<W5GK&=E
  1558. XM<W1E9"!H>7!H96YS+"!A<ZEY972I=6YU<V5D(&%N9"!U<V5D('-O9G2J:'EP
  1559. XM:&5N<RP@86YD(&YE=F5R+71O+6)E+75S92!H>7!H96YS+IX)5&%B<R!I;B!T
  1560. XM:&4@;6ED9&QE(&]F(&$@;&EN90UA<F4@<')O8FQE;6%T:6,L(&%S('=E;&P@
  1561. XM87,@S```S&EN9&5N=&5D('!A<F%G<F%P:',@=&AA="!D;VXG="!B96=I;@UU
  1562. XM;G1I;"!T:&4@;6ED9&QE(&]F(&$@<&%R86=R87!H+@H*P0`%P8+@``#@5F5R
  1563. XM>2!U;G5S=6%L(&ES(&$@9&]U8FQEJ7-P86-E9"!D;W5B;'FI:6YD96YT960-
  1564. XM<&%R86=R87!H+"!S:6YC92!T>7!I8V%L;'D@9&]U8FQYJ6EN9&5N=&5D('!A
  1565. XM<F%G<F%P:',@87)E#91S:6YG;&65J7-P86-E9"X@("AS:6=N960I($1R+J!&
  1566. XM<F%N:V5N<W1E:6XN"L$``\&!"@D)PP$4#,-C96YT97)I;F<@87)O=6YD@PD)
  1567. XMPP$C'\-T86(@<W1O<'.#(&]R(`D)Q"XW,,1D96-I;6%L@RYP;VEN='/$"DU"
  1568. XMQ&9L=7-H(')I9VAT@PK!``+!3F5I=&AE<B!C;VQU;6YS(/,`````````````
  1569. XM`````````````````````````````````````````````````````@HH+4L`
  1570. XM`````````````````````````````````````````````````````````/-N
  1571. XM;W(@;6%T:-<`````````````````````````````````````_R*"(B(B(B(B
  1572. XM(B(B(B(B(B(B(B(B(B(B(H'$\`$!`0````#7IR!I<R!S=7!P;W)T960N"H=L
  1573. XM969T#')I9VATL#+$+@\/Q(/$+A03Q#.#+C`PI@K$+@\.Q#2#"L0N#P[$,X,*
  1574. XMQ"X/#L0T@PK$+@\-Q#$Q@RXP,*$*Q"X/#<0Q,8,N,#"C"L0N#P[$HH,*Q"X/
  1575. XM#L2D@PK$+@\-Q#$Q@RXP,*4*Q"X/#L2Q@PJH"HI"86-K('1O('1H92!U<W5A
  1576. XM;"!N;VYS96YS92!O9B!T97AT('!R;V-E<W-I;F<L(&QI:V4@86QI9VYM96YT
  1577. XM#6-H87)A8W1E<G/8`$#8+"!A;F0@;W5T;&EN92!M;V1E("AU;G-U<'!O<G1E
  1578. XM9"GN````````````````````````````$!`4$C0R(`$`````````````````
  1579. XM[@H)[P$``0````````````````#OS```S%!A<G0@00H)">\"``$``0``````
  1580. XM````````[\P``,Q087)T(&$N,0H)[X(``0`!``$```````````#O(&YU;6)E
  1581. XM<B!T:')E92P@=VAA=&5V97(@=&AA="!I<PKI``0$!`0$Z9OJ9F]O`&)A>NKM
  1582. X'(`!F;V\`[6\`
  1583. X`
  1584. Xend
  1585. END_OF_FILE
  1586. if test 3761 -ne `wc -c <'torture.uue'`; then
  1587.     echo shar: \"'torture.uue'\" unpacked with wrong size!
  1588. fi
  1589. # end of 'torture.uue'
  1590. fi
  1591. if test -f 'troff.cfg' -a "${1}" != "-c" ; then 
  1592.   echo shar: Will not clobber existing file \"'troff.cfg'\"
  1593. else
  1594. echo shar: Extracting \"'troff.cfg'\" \(5508 characters\)
  1595. sed "s/^X//" >'troff.cfg' <<'END_OF_FILE'
  1596. X# troff configuration file for WP2X.
  1597. X#
  1598. X# Written 12/15/89 by Raymond Chen.
  1599. X#
  1600. X# If you change this file, please make a note of it below
  1601. X# and in the BEGIN string.
  1602. X#
  1603. X# Version 0.0:  Initial version.
  1604. X# Version 1.0:  COMMENT tag added 23-Jul-1991.
  1605. X# Version 1.1:  Improved comments, assorted new tags.
  1606. X# Version 1.2:  New output scheme.
  1607. X#
  1608. X# Known bugs (err... design decisions).
  1609. X#
  1610. X# No attempt is made to insert \& at the start of every text line.
  1611. X# So beware of lines that happen to begin with a period or an apostrophe.
  1612. X#
  1613. X
  1614. X# At the beginning of the file, we put in some identification.
  1615. XBEGIN=".\\\" This file was created by the WP2X program, using a troff
  1616. X.\\\" descriptor file (Version 1.2) written by Raymond Chen.
  1617. X.\\\"
  1618. X.\\\" Do not expect everything to be converted perfectly.
  1619. X.\\\"
  1620. X.\\\" The macro `hd' is our header, and `fo' is our footer.  By default,
  1621. X.\\\" they do nothing (yet).  These macros are intentionally crude (they
  1622. X.\\\" don't preserve the environment or anything) because you'll probably
  1623. X.\\\" end up hand-editing them anyway.
  1624. X.de hd
  1625. X'sp 1
  1626. X..
  1627. X.de fo
  1628. X'sp 1
  1629. X..
  1630. X.wh 0 hd
  1631. X.wh -1 fo
  1632. X.\\\"
  1633. X.\\\" Conditional page eject macro.
  1634. X.de CP
  1635. X.ne \\\\$1/2u
  1636. X..
  1637. X"
  1638. X
  1639. X# At the end of the file, we close up some tags.
  1640. XEND="%\n.\\\"
  1641. X.\\\" End of file
  1642. X"
  1643. X
  1644. XComment="%\n.\\\" "
  1645. Xcomment="\n"
  1646. X
  1647. X# Protect magic characters.
  1648. X'\\'="\\e"
  1649. X
  1650. X# Now the actual code expansions.
  1651. X
  1652. XPageNo="%%"                  # insert page number (only works in head/footers)
  1653. XRomanPage="%\n.pn %1\n.af %% i\n" # set roman numerals
  1654. XArabicPage="%\n.pn %1\n.af %% 1\n" # set arabic numerals
  1655. X
  1656. XHSpace="\\ "                 # Unbreakable space
  1657. X
  1658. XTab="\t"                     # Leave tabs as is.
  1659. XBeginTabs="%\n.ta "
  1660. XSetTab="%1 "
  1661. XSetTabCenter="%1C "
  1662. XSetTabRight="%1R "
  1663. XSetTabDecimal="%1d "
  1664. XEndTabs="\n"
  1665. X
  1666. XHPg="%\n.bp\n"               # Hard page forces a new page
  1667. XCondEOP="%\n.CP %1\n"        # Conditional end-of-page
  1668. X
  1669. XHRt="%\n.br\n"               # Hard return.
  1670. XSRt="%\n"                    # Soft return is a newline
  1671. X
  1672. X-="-"                        # Hyphens are hyphens
  1673. X--="-\\c\n"                  # Hyphen at the end of a line gets a \c
  1674. X=="-"                        # Nonbreaking hyphen (does it exist?)
  1675. X\-="\\%%"                    # Discretionary hyphen
  1676. X\--="\\%%\\c\n"              # Discretonary hyphen at the end of the line
  1677. X
  1678. X# Margins are left as comments, since changing the margin on the fly
  1679. X# is tricky.
  1680. XMarg="%\n.\\\" left margin %1, right margin %2\n"
  1681. XTopMarg="%\n.\\\" top margin %1\n"     #$$
  1682. XPageLength="%\n.\\\" page length %1\n" #$$
  1683. X
  1684. X# There is no way to do fractional spacing without playing with .vs
  1685. XSS="%\n.ls 1\n"
  1686. X1.5S="%\n.\\\" Switch to 1.5 spacing\n"
  1687. XDS="%\n.ls 2\n"
  1688. XTS="%\n.ls 3\n"
  1689. XLS="%\n.\\\" Switch to %1/2 spacing\n"
  1690. XLPI="%\n.\\\" Change to %1 lines per inch\n"
  1691. X
  1692. XBold="\\fB"                  # Boldface
  1693. Xbold="\\fP"
  1694. XUnd="\\fI"                   # Underlining uses italics
  1695. Xund="\\^\\fP"                # insert italic correction
  1696. XRed="\\f(RE"                 # Change `RE' to your redline font
  1697. Xred="\\fP"
  1698. XStrike="\\f(ST"              # Change `ST' to your strikeout font
  1699. Xstrike="\\fP"
  1700. XRev="\\f(RV"                 # Change `RV' to your reverse font
  1701. Xrev="\\fP"
  1702. X
  1703. X# Overstriking is nasty because WP puts the overstrike code AFTER
  1704. X# the character being overstruck.  So we can't use the \o'...' service.
  1705. XOver="\\h'-\\n(.wu'"
  1706. Xover=""
  1707. X
  1708. X# Super and subscript are done by \u and \d.  If you want, use \v instead.
  1709. XSup="\\u"
  1710. Xsup="\\d"
  1711. XSub="\\d"
  1712. Xsub="\\u"
  1713. X
  1714. XUpHalfLine="\\u"
  1715. XDownHalfLine="\\d"
  1716. XAdvanceToHalfLine="?" #$$
  1717. X
  1718. XIndent="%\n.in +0.5i\n"      # Indented paragraph
  1719. XDIndent="%\n.in +0.5i\n"     # not really, but we have to do it this way.
  1720. Xindent="%\n.in -0.5i\n"      # so that this works
  1721. XMarginRelease="\\h'-%1'"
  1722. X
  1723. XCenter="%\n.ce 1\n"
  1724. Xcenter="%\n"
  1725. X
  1726. X# FlushRight
  1727. X# flushright
  1728. X
  1729. XFn="%\n.FS\n"                # Go write your own
  1730. Xfn="%\n.FE\n"                # footnote and
  1731. XEn="%\n.ES\n"                # endnote
  1732. Xen="%\n.EE\n"                # macros
  1733. XFNote#=""                    # Note numbers should be automatically generated.
  1734. XENote#=""
  1735. X
  1736. X# Other random parameters
  1737. XHyph="%\n.hy\n"
  1738. Xhyph="%\n.nh\n"
  1739. XNoHyphWord="\\%%"             # Suppress hyphenation of next word
  1740. XJust="%\n.ad\n"
  1741. Xjust="%\n.na\n"
  1742. XWid="%\n.\\\" Widow protection on\n"
  1743. Xwid="%\n.\\\" Widow protection off\n"
  1744. X
  1745. X# Headers and footers.  These are totally bogus definitions, since
  1746. X# they'll have `.' instead of apostrophes, but the purpose is to do
  1747. X# some sort of conversion AT ALL.
  1748. XHeader="%\n.de hd\n"            # new header macro
  1749. Xheader="%\n..\n"                # (totally bogus)
  1750. XFooter="%\n.de fo\n"            # new footer macro
  1751. Xfooter="%\n..\n"                # (totally bogus)
  1752. X
  1753. X# These guys are left as comments, since actually doing them right
  1754. X# requires all sorts of icky things I'd rather not think about.
  1755. XSupp="%\n.\\\" Suppress headers and footers on this page\n"
  1756. XCtrPg="%\n.\\\" Center this page vertically\n"
  1757. XSetFont="%\n.\\\" Change to %1 pitch, font %2\n"
  1758. XSetBin="%\n.\\\"%% Change to paper bin %1\n"
  1759. X
  1760. X# Page numbering
  1761. XPN0="%\n.de hd\n.tl ''''\n..\n.de fo\n.tl ''''\n..\n"
  1762. XPN1="%\n.de hd\n.tl '%%'''\n..\n.de fo\n.tl ''''\n..\n"
  1763. XPN2="%\n.de hd\n.tl ''%%''\n..\n.de fo\n.tl ''''\n..\n"
  1764. XPN3="%\n.de hd\n.tl '''%%'\n..\n.de fo\n.tl ''''\n..\n"
  1765. XPN4="%\n.de hd\n.if e .tl '%%'''\n.el .tl '''%%'\n..\n.de fo\n.tl ''''\n..\n"
  1766. XPN5="%\n.de hd\n.tl ''''\n..\n.de fo\n.tl '%%'''\n..\n"
  1767. XPN6="%\n.de hd\n.tl ''''\n..\n.de fo\n.tl ''%%''\n..\n"
  1768. XPN7="%\n.de hd\n.tl ''''\n..\n.de fo\n.tl '''%%'\n..\n"
  1769. XPN8="%\n.de hd\n.tl ''''\n..\n.de fo\n.if e .tl '%%'''\n.el .tl '''%%'\n..\n"
  1770. END_OF_FILE
  1771. if test 5508 -ne `wc -c <'troff.cfg'`; then
  1772.     echo shar: \"'troff.cfg'\" unpacked with wrong size!
  1773. fi
  1774. # end of 'troff.cfg'
  1775. fi
  1776. echo shar: End of archive 1 \(of 3\).
  1777. cp /dev/null ark1isdone
  1778. MISSING=""
  1779. for I in 1 2 3 ; do
  1780.     if test ! -f ark${I}isdone ; then
  1781.     MISSING="${MISSING} ${I}"
  1782.     fi
  1783. done
  1784. if test "${MISSING}" = "" ; then
  1785.     echo You have unpacked all 3 archives.
  1786.     rm -f ark[1-9]isdone
  1787. else
  1788.     echo You still need to unpack the following archives:
  1789.     echo "        " ${MISSING}
  1790. fi
  1791. ##  End of shell archive.
  1792. exit 0
  1793.  
  1794. exit 0 # Just in case...
  1795.